package uk.ac.bath.base;

import java.awt.geom.Point2D;
import uk.ac.bath.domains.prey.HunterCell;

public abstract class Space {

    //    protected int ndim;
    public final int sizeX;
    public final int sizeY;
    public final int sizeZ;

    protected Space(int sizeX, int sizeY, int sizeZ) {
        this.sizeX = sizeX;
        this.sizeY = sizeY;
        this.sizeZ = sizeZ;
    }

    abstract public Point randomPoint();

    abstract public  Point randomPointNear(Point p, int rad);

    

    public int sizeX() {
        return sizeX;
    }

    public int sizeY() {
        return sizeY;
    }

    public int sizeZ() {
        return sizeZ;
    }
    //    abstract Point adjacentPoint(Point p,int d);

    public abstract boolean contains(Point p);

    abstract public Point above(Point p);

    abstract public Point below(Point p);

    abstract public Point left(Point p);

    abstract public Point right(Point p);

    Point above(Point2D p2) {
        throw new UnsupportedOperationException("Not yet implemented");
    }
}
